layui.use(['form','layer'],function(){
    var form = layui.form
        layer = parent.layer === undefined ? layui.layer : top.layer,
        $ = layui.jquery;
    form.on('radio(isParam)', function (data) {
        if(data.value=="2"){
            $(".xyg-param").show();
        }else{
            $(".xyg-param").hide();
        }
    });


    form.on("submit(btnSubmit)",function(data){
        //弹出loading
        var index = top.layer.msg('数据提交中，请稍候',{icon: 16,time:false,shade:0.8});
        var description = editor.txt.html();
        var field = data.field;
        var status = field.status;
        var remainderNum = field.remainderNum;
        /*if (Number(remainderNum) < 1){
            layer.alert("数量不能小于1！")
            return false;
        }*/
        // 获取参数数据
        var params = [];
        $(".xyg-show-param-value").each(function (index,element) {
            debugger;
            var _ps = [];
            $(element).find(".xyg-form-btn").each(function(_index,_element){
                var _val = $(_element).attr("data-value");
                if($.trim(_val).length>0){
                    _ps.push(_val);
                }
            });
            var vals = $(element).attr("data-value");
            if($.trim(vals).length>0 && _ps.length > 0){
                params.push({
                    "group":vals,
                    "params":_ps
                });
            }
        });
        var itemParams="";
        $(".xyg-table-params .xyg-tr-params").each(function (index,elem) {
            var dataStock=$(elem).find(".dataStock").val();
            /*if (Number(dataStock) < 1){
                layer.alert("数量不能小于1！")
                return false;
            }*/
            var dataPrice=$(elem).find(".dataPrice").val();
            if (Number(dataPrice) < 0){
                layer.alert("价格不能小于0！")
                return false;
            }
            var dataProfit=$(elem).find(".dataProfit").val();

            var params=$(elem).find(".dataStock").attr("data-params");
            if(itemParams!=null&&itemParams!=""){
                itemParams=itemParams+"#"+dataStock+"&"+dataPrice+"&"+dataProfit+"&"+params;
            }else{
                itemParams=dataStock+"&"+dataPrice+"&"+dataProfit+"&"+params;
            }
        });

        debugger;
        var isParam=$("input[type=radio][name=isParam]:checked").val();
        if(isParam=="2"){
            if(params.length<=0){
                top.layer.msg("请输入规格参数！");
                return false;
            }
        }
        console.log(params);
        // 实际使用时的提交信息
        $.post("/item/updateOrAddEntity",{
            id : $("#id").val(),
            brandId : $("#brandId").val(),
            title : $("#title").val(),
            prePrice : $("#prePrice").val(),
            origPrice : $("#origPrice").val(),
            imageOne : $("#imageOne").val(),
            imageTwo : $("#imageTwo").val(),
            imageThree : $("#imageThree").val(),
            imageFour : $("#imageFour").val(),
            imageFive : $("#imageFive").val(),
            imageSix : $("#imageSix").val(),
            profit:  $("#profit").val(),
            status : status,
            remainderNum : remainderNum,
            orderNum : $("#orderNum").val(),
            description : description,
            isParam:isParam,
            itemParams:itemParams,
            paramData:JSON.stringify(params)
        },function(result){
            if(1==result.returnInfo.state){
                top.layer.close(index);
                top.layer.msg("操作成功！");
                layer.closeAll("iframe");
                //刷新父页面
                parent.location.reload();
            }else{
                top.layer.msg(result.returnInfo.errorMsg);
            }
        },"json")
        return false;
    });

    // 增加值
    var itemParamJson = $("#itemParamJson").val();
    if(itemParamJson != null && itemParamJson != ""){
        var paramDataJsons = eval('(' + itemParamJson + ')');
        var str ='';
        for(var i = 0; i < paramDataJsons.length; i++){
            var paramDataJson = paramDataJsons[i];
            str +='<li class="param"><ul><li>\
                <input style="width: 150px;" class="layui-input" name="group" value="'+paramDataJson.group+'"/>&nbsp;<a href="javascript:void(0)" class="layui-btn layui-btn-primary layui-btn-xs addParam"  title="添加参数" ></a>\
                </li>';
            var params = paramDataJson.params;
            for(var j=0;j<params.length;j++){
                var param = params[j];
                console.log(param);
                str+='<li>\
                    <span>|-------</span>\
                    <input  style="width: 150px;" class="layui-input" name="param" value="'+param+'"/>&nbsp;<a href="javascript:void(0)" class="layui-btn layui-btn-danger layui-btn-xs delParam" title="删除" ></a>\
                    </li>';
            }
            str+='</ul></li>';
        }
        //$(".addGroup").append(str);
    }

    //添加规格参数
    $("#paramContentBtn").click(function(){
        var value=$("#paramContent").val();
        if(value==null||value==""){
            top.layer.msg("请输入规格参数！");
            return false;
        }
        var str='<div class="layui-input-block">'+
                    '<blockquote class="layui-elem-quote layui-quote-nm" style="margin-top: 5px;">'+
                        '<div class="layui-form-item layui-row layui-col-xs12">'+
                         '<label class="xyg-form-btn">'+value+'<button style="border: 0px;" type="button" onclick="delParam(this)" class="layui-btn layui-btn-primary layui-btn-sm"><i class="layui-icon"></i></button></label>'+
                        '</div>'+
                        '<div class="xyg-show-param-value" data-value="'+value+'">'+
                        '</div>'+
                        '<label class="xyg-form-btn" style="border: 0px; padding:8px 0px 3px 5px;">规格值</label>'+
                        '<div class="layui-input-inline">'+
                        '<input type="text"  placeholder="请输入规格值，如：红色"  class="xyg-show-param-value-content layui-input">'+
                        '</div>'+
                        '<button type="button" onclick="addParamValue(this)" class="layui-btn layui-btn-normal">添加</button>'+
                    '</blockquote>'+
                '</div>';
        $(".xyg-show-param").append(str);
        $("#paramContent").val("");
        accept();
    });

    $(".addGroup").click(function(){
        var temple = $(".itemParamAddTemplate li").eq(0).clone();
        $(this).parent().parent().append(temple);
        temple.find(".addParam").click(function(){
            var li = $(".itemParamAddTemplate li").eq(2).clone();
            li.find(".delParam").click(function(){
                $(this).parent().remove();
            });
            li.appendTo($(this).parentsUntil("ul").parent());
        });
        temple.find(".delParam").click(function(){
            $(this).parent().remove();
        });
    });
})

var DescartesUtils = {
    /**
     * 如果传入的参数只有一个数组，求笛卡尔积结果
     * @param arr1 一维数组
     * @returns {Array}
     */
    descartes1:function(arr1){
        // 返回结果，是一个二维数组
        var result = [];
        var i = 0;
        for (i = 0; i < arr1.length; i++) {
            var item1 = arr1[i];
            result.push([item1]);
        }
        return result;
    },

    /**
     * 如果传入的参数只有两个数组，求笛卡尔积结果
     * @param arr1 一维数组
     * @param arr2 一维数组
     * @returns {Array}
     */
    descartes2: function(arr1, arr2) {
        // 返回结果，是一个二维数组
        var result = [];
        var i = 0, j = 0;
        for (i = 0; i < arr1.length; i++) {
            var item1 = arr1[i];
            for (j = 0; j < arr2.length; j++) {
                var item2 = arr2[j];
                result.push([item1, item2]);
            }
        }
        return result;
    },

    /**
     *
     * @param arr2D 二维数组
     * @param arr1D 一维数组
     * @returns {Array}
     */
    descartes2DAnd1D: function(arr2D, arr1D) {
        var i = 0, j = 0;
        // 返回结果，是一个二维数组
        var result = [];

        for (i = 0; i < arr2D.length; i++) {
            var arrOf2D = arr2D[i];
            for (j = 0; j < arr1D.length; j++) {
                var item1D = arr1D[j];
                result.push(arrOf2D.concat(item1D));
            }
        }

        return result;
    },

    descartes3: function(list) {
        var listLength = list.length;
        var i = 0, j = 0;
        // 返回结果，是一个二维数组
        var result = [];
        // 为了便于观察，采用这种顺序
        var arr2D = DescartesUtils.descartes2(list[0], list[1]);
        for (i = 2; i < listLength; i++) {
            var arrOfList = list[i];
            arr2D = DescartesUtils.descartes2DAnd1D(arr2D, arrOfList);
        }
        return arr2D;
    },

    //笛卡儿积组合
    descartes: function(list)
    {
        if (!list) {
            return [];
        }
        if (list.length <= 0) {
            return [];
        }
        if (list.length == 1) {
            return DescartesUtils.descartes1(list[0]);
        }
        if (list.length == 2) {
            return DescartesUtils.descartes2(list[0], list[1]);
        }
        if (list.length >= 3) {
            return DescartesUtils.descartes3(list);
        }
    }

};